#ifndef Kernel_ResponseSpectrumAnalysisTask_h
#define Kernel_ResponseSpectrumAnalysisTask_h

#include "Utility/Configuration/SGParameter.h"
#include "MSolver.h"
#include "DBManager/IService/Input/Dynamic/ISPECSELService.h"
#include "DBManager/IService/Input/Table/ITABDMP1Service.h"


// #include "DBManager/IService/Input/Table/ITABLED1Service.h"

namespace Kernel
{
    /**
     * @brief Response Spectrum Analysis Task
     *
     * @author nene
     * @date November, 2024.
     */
    class KERNEL_EXPORT ResponseSpectrumAnalysisTask : public MSolver
    {
    public:
        explicit ResponseSpectrumAnalysisTask(MModel&                                    model,
                                              const SG::Utility::SGParameter&              parameter,
                                              const SG::DataStructure::FEM::SPECSELData&   specselData,
                                              const SG::DataStructure::FEM::TABDMP1Data&   tabdmp1Data);

        virtual ~ResponseSpectrumAnalysisTask();

        
        virtual void Solve();

    private:
        SG::DataStructure::FEM::SPECSELData m_specselData;
        SG::DataStructure::FEM::TABDMP1Data m_tabdmp1Data;

    protected:
        int myModesCount = 1;      
    };
} 

#endif // Kernel_ResponseSpectrumAnalysisTask_h